package java_reflect;

/**
 * @author 美女
 * @date 2022/03/26 15:34
 **/
@FunctionalInterface
interface IMessage{
    void printMessage(String msg);
    //这是一个普通方法，不是抽象方法，子类不一定需要覆写
    default void test() {
        System.out.println("普通方法");
    }
}
class MessageImpl implements IMessage{

    @Override
    public void printMessage(String msg) {
        System.out.println("正经写法，接口子类覆写抽象方法");
        System.out.println(msg);
    }
}
public class LambdaTest {
    public static void main(String[] args) {
//        IMessage message=new MessageImpl();
//        message.printMessage("正经用法");
//        //匿名内部类
//        IMessage message1=new IMessage() {
//            @Override
//            public void printMessage(String msg) {
//                System.out.println(msg);
//            }
//        };
//        message1.printMessage("匿名内部类的用法");
        IMessage message2=msg -> System.out.println(msg);
        message2.printMessage("Lambda表达式的写法");
        IMessage message=new MessageImpl();
        message.test();
    }
}
